package com.hzw.saas.web.app.old.storage.param;

import java.io.Serializable;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @author zzl
 * @since 02/28/2021
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
// @ApiModel("文件复制/移动请求参数")
public class ResourceFileCopyParam implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 文件ID列表
     */
    @ApiModelProperty(value = "文件ID列表", position = 1)
    private List<String> fileIds;

    /**
     * 目录ID列表
     */
    @ApiModelProperty(value = "目录ID列表", position = 2)
    private List<String> folderIds;

    /**
     * 文件操作模式，1-复制，2-移动
     */
    @ApiModelProperty(value = "文件操作模式，1-复制，2-移动", position = 3, required = true)
    @NotNull(message = "文件操作模式不可为空")
    private Integer mode;

    /**
     * 文件复制目标目录ID
     */
    @ApiModelProperty(value = "文件复制目标目录ID，特殊：0-根目录", position = 4, required = true)
    @NotBlank(message = "文件复制目标目录ID不可为空")
    private String targetFolderId;

    /**
     * 文件原父目录ID
     */
    @ApiModelProperty(value = "文件原父目录ID，预留字段", position = 5)
    private String originalFolderId;

    /**
     * 是否覆盖同名文件
     */
    @ApiModelProperty(value = "是否覆盖提交，false-存在同名文件时会返回409错误，true-存在同名文件时，会覆盖同名文件", position = 6, hidden = true)
    private Boolean cover;

}
